Skip to content

Initialize the DISCO checkpoint from the time value - #4069

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-dynamicquantities-disco-checkpoint
Jul 29, 2026
Merged

Initialize the DISCO checkpoint from the time value#4069
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-dynamicquantities-disco-checkpoint

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore until reviewed by @ChrisRackauckas.

Summary

  • initialize disco_checkpoint with zero(t) instead of zero(tType)
  • preserve runtime dimensions for time representations whose type alone does not encode them
  • strengthen the existing DynamicQuantities + Measurements downstream regression to inspect the initialized checkpoint and complete through solve!

Root cause

The DISCO optimization added disco_checkpoint = zero(tType). DynamicQuantities deliberately rejects zero(::Type{<:Quantity}) when dimensions are runtime data, so ODE initialization failed before the first step. The initial time value already carries those dimensions, and zero(t) produces the correctly typed additive identity.

A controlled parent/child test with an otherwise identical dependency graph passed 4/4 at c538565b25 and failed during initialization at 408a7a30fe0; git bisect identifies 408a7a30fe0 (disco optimizations) as the first bad commit. The failure is present with DynamicQuantities 1.12.2 and 1.13.0, so it is not a 1.13-only behavior change.

CI prerequisite

#4066 is the current resolver prerequisite for testing this branch against registry SciMLBase 3.39.1. The code change itself is independent; the official Downstream validation below used a test-only stack of #4066 plus this commit.

Validation

  • Julia 1.12, DynamicQuantities 1.12.2 + Measurements 2.14.1: focused test 6/6
  • Julia 1.12, DynamicQuantities 1.13.0 + Measurements 2.14.1: focused test 6/6
  • Julia 1.10 LTS, DynamicQuantities 1.13.0 + Measurements 2.14.1, local DiffEqBase/Core/Tsit5 stack: focused test 6/6
  • Julia 1.12 official GROUP=Downstream on Restore SciMLBase 3.39 compatibility for owner imports #4066 + this commit: Time derivative 202/202, DynamicQuantities + Measurements 6/6, Pkg.test passed in 1879.4 seconds
  • Runic check passes on both changed files
  • whole-repository Runic reports only the three pre-existing DISCO formatting files addressed by Run Runic on the disco-optimizations files #4064; neither changed file appears in that diff
  • git diff --check passes

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

Copy link
Copy Markdown
Member Author

Early CI dependency checkpoint: the Julia 1.12 Integrators_I job stops during package resolution before loading this change. General ends at SciMLBase 3.39.1, while the current master copy of OrdinaryDiffEqNonlinearSolve 2.6.0 still requires 3.40, producing the exact 3.39-vs-3.40 unsatisfiable requirement. This is the declared #4066 prerequisite. The local #4066 + #4069 official Downstream run completed successfully (time derivatives 202/202, DynamicQuantities/Measurements 6/6). Runic independently reports the clean-master DISCO formatting handled by #4064. No resolver workaround is being added here.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 29, 2026 21:35
@ChrisRackauckas
ChrisRackauckas merged commit b22e2e5 into SciML:master Jul 29, 2026
11 of 253 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants